;; -*- coding: utf-8 -*-
(defun locale-is-utf8-p ()
  "Return t iff the \"locale\" command or environment variables prefer UTF-8."
  (flet ((is-utf8 (v) (and v (string-match "UTF-8" v))))
    (or (is-utf8 (and (executable-find "locale") (shell-command-to-string "locale")))
        (is-utf8 (getenv "LC_ALL"))
        (is-utf8 (getenv "LC_CTYPE"))
        (is-utf8 (getenv "LANG")))))

(when (or window-system (locale-is-utf8-p))
  (cond
   ((string= window-system "w32") (setq current-language-environment "Chinese-GB18030"))
   (t (progn
	 (when (or window-system (locale-is-utf8-p))
	   (setq utf-translate-cjk-mode t)
	   (set-language-environment 'utf-8)
	   (setq locale-coding-system 'utf-8)
	   (set-default-coding-systems 'utf-8)
	   (set-terminal-coding-system 'utf-8)
	   (set-selection-coding-system 'utf-8)
	   (prefer-coding-system 'utf-8))))))

(provide 'init-locales)
